[PATCH] MD: generate an event when array sync is complete

Neil,

I'm not sure this is the best place in the code to put this (even though
I've tested that it works well). I welcome your corrections.

brassow

This patch causes MD to generate an event (for device-mapper) once array
synchronization is complete. This is expected behavior for device-mapper.

RFC-by: Jonathan Brassow <jbrassow [at] redhat.com>

Index: linux-2.6/drivers/md/md.c
============================================================ =======
--- linux-2.6.orig/drivers/md/md.c
+++ linux-2.6/drivers/md/md.c
[at] [at] -7328,6 +7328,9 [at] [at] void md_check_recovery(mddev_t *mddev)
unlock:
if (!mddev->sync_thread) {
clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery);
+ if (mddev->event_work.func && !mddev->recovery &&
+ (mddev->recovery_cp == MaxSector))
+ queue_work(md_misc_wq, &mddev->event_work);
if (test_and_clear_bit(MD_RECOVERY_RECOVER,
&mddev->recovery))
if (mddev->sysfs_action)


--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo [at] vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Jonathan Brassow [ Do, 14 Juli 2011 22:59 ] [ ID #2062047 ]

Re: [PATCH] MD: generate an event when array sync is complete

On Thu, 14 Jul 2011 15:59:25 -0500 Jonathan Brassow <jbrassow [at] redhat.com>
wrote:

> Neil,
>
> I'm not sure this is the best place in the code to put this (even though
> I've tested that it works well). I welcome your corrections.
>
> brassow
>
> This patch causes MD to generate an event (for device-mapper) once array
> synchronization is complete. This is expected behavior for device-mapper.
>
> RFC-by: Jonathan Brassow <jbrassow [at] redhat.com>
>
> Index: linux-2.6/drivers/md/md.c
> ============================================================ =======
> --- linux-2.6.orig/drivers/md/md.c
> +++ linux-2.6/drivers/md/md.c
> [at] [at] -7328,6 +7328,9 [at] [at] void md_check_recovery(mddev_t *mddev)
> unlock:
> if (!mddev->sync_thread) {
> clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery);
> + if (mddev->event_work.func && !mddev->recovery &&
> + (mddev->recovery_cp == MaxSector))
> + queue_work(md_misc_wq, &mddev->event_work);
> if (test_and_clear_bit(MD_RECOVERY_RECOVER,
> &mddev->recovery))
> if (mddev->sysfs_action)
>
>

Hi Jon,
I think reap_sync_thread would be a better place to put this.
Do you really need all the extra tests though? Would it not be OK to just
notify dmeventd if the resync has stopped, and it can figure out what
actually happened and whether anything needs to be done about it?

I'm happy either way - just thought I would mention it.
So resend with the code in reap_sync_thread and I'll apply.

Thanks,
NeilBrown

--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo [at] vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
NeilBrown [ Mi, 20 Juli 2011 03:50 ] [ ID #2062254 ]

Re: [PATCH] MD: generate an event when array sync is complete

Neil,

As you said, reap_sync_thread is a much better place for this patch...

brassow

This patch causes MD to generate an event (for device-mapper) when the
synchronization thread is reaped. This is expected behavior for device-mapper.

Signed-off-by: Jonathan Brassow <jbrassow [at] redhat.com>

Index: linux-2.6/drivers/md/md.c
============================================================ =======
--- linux-2.6.orig/drivers/md/md.c
+++ linux-2.6/drivers/md/md.c
[at] [at] -7148,6 +7148,8 [at] [at] static void reap_sync_thread(mddev_t *md
set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
sysfs_notify_dirent_safe(mddev->sysfs_action);
md_new_event(mddev);
+ if (mddev->event_work.func)
+ queue_work(md_misc_wq, &mddev->event_work);
}

/*


--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo [at] vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Jonathan Brassow [ Mi, 20 Juli 2011 21:16 ] [ ID #2062269 ]
Linux » gmane.linux.raid » [PATCH] MD: generate an event when array sync is complete

Vorheriges Thema: [md PATCH 04/34] md/raid5: use kmem_cache_zalloc()
Nächstes Thema: Software RAID and TRIM